%%%%%%@@@@%%***********++=++***===-+*%%#%@%%%%%##+***#%####%%%%%%%%%%
%%%%%#****++#*******+++++++*+++=====-=*#%@@%%%####***%%%%%%###%%%%%%%
##*##*******#*#**+++++++*+++==========**#@%%%%%%%##*###%%%%%%%####%%%
##*+=*#%%@@@#*+++++*++====-----=====+*##%@@%%%%%%##########%%%%%%###%
%%%*++*%@@@%#+++====----------====+#%##*#@@%%%%%%%###%###%%%%%%%@@%%%
#**######*+*=---------------====*#%###**+*%@%%%%%%%###%%####%%%%@@@@@
#++***%#+=++=----=========+++*####+#####**+%%%%%%%%*####%%#%%%%%%@@@@
#***%#*=-=========+++++++**######+*###%%##*#%%#####**####%%%%%%%%@@@@
#%%#*##+====++++++**#**********%%#####%%%%#*%%%%#**+++**#%%%%%@%%@@@@
#%%**#*+++++++***********#*#*#**###%*%%%%%%#*%%%%%%%#*++=++*#%%@@@@@@
##+==+++++*+**####***********+++*#%#+%%%%%%#+#%%%%%%%#%#*+====+*#@@%@
++++++++*****++*+**********++++*##%#*#####%#++#############*+=====+*#
===++*******+************#****#*#####%%%%%%%##########*#%%%%%#+=====+
++***************########*##########***#*##%#%%%%%%%%%%%%%%%%%%#+===+
#*#########*####%%%#%%%##%%%%%%#%%%###################%%%%%%%%%%%#==+
############%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%#######################*+
#######%%%%#%%%####%%%%####%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%######**####
####%%%%%%%%%%%%%#%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######***#
%%%%%%%%%%%%%%%%%%%%%%%%#####%%%%%%%%#%%%#%%%%%%#################***#
%%%%%%%%%%%%%%%%%%#%%%%%#######%%#######################***###******#
%%%%%%%%%%%%%%%#%##%%%#####################################*********#
%%%%%%%%%##########################################**##########*****#
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%